Comments (13)
包裹一层promise就好了 我的解决方案
let data = await new Promise((res, rej) => {
cos.putObject({},
function(err, data) {
if(err) {
rej(err)
} else {
res(data)
}
})
})
from cos-nodejs-sdk-v5.
没有官方的 Promise
的支持是挺麻烦的,自己改造吧:
const { promisify } = require("util")
// 你的 COS 实例
const cos = new COS({ /* ... */ })
// 将 promisify 后的方法挂到实例上
cos.pHeadBucket = promisify(cos.headBucket)
// Promise 风格示例
cos.pHeadBucket(params)
.then(res => console.log(res))
.catch(err => console.error(err))
// async/await 风格示例
async function yourAsyncFn() {
const res = await cos.pHeadBucket(params)
console.log(res)
}
yourAsyncFn().catch(err => console.log(err))
@carsonxu 感觉这问题挺常见,要不加到文档里?
from cos-nodejs-sdk-v5.
谢谢反馈,有考虑过支持 Promise 格式,但优先级不高,暂未支持,我们后续再评估下。
from cos-nodejs-sdk-v5.
@carsonxu 还没评估好?
from cos-nodejs-sdk-v5.
@carsonxu
Hi. 不知道这边评估的如何了呢?因为最近在项目中有使用到,所以也会有所期望。
如果你们评估觉得 OK 的话,愿意一起讨论方案和后续实现,如果需要帮忙的话。:)
from cos-nodejs-sdk-v5.
这个问题挺常见的,使用util的promisify 对api进行改造即可。
阿里和腾讯都不支持promise,七牛云就可以....
from cos-nodejs-sdk-v5.
同需要支持promise
from cos-nodejs-sdk-v5.
@xinayu 补充一下,貌似阿里云的支持了。我使用阿里云邮件推送(Aliyun DirectMail)的官方SDK,已经支持 Promise,UPYUN 也支持了。目前就腾讯这儿还不支持:(
from cos-nodejs-sdk-v5.
写个builder
const cosPromise = fn => params => new Promise((resolve, reject) => {
fn(params, (err, data) =>
err ? reject(err) : resolve(data)
)
})
const cosGetObject = cosPromise(cos.getObject.bind(cos));
const cosPutObject = cosPromise(cos.putObject.bind(cos));
const cosDeleteObject = cosPromise(cos.deleteObject.bind(cos));
from cos-nodejs-sdk-v5.
已支持 Promise 和 await 调用 v2.8.0
from cos-nodejs-sdk-v5.
已支持 Promise 和 await 调用 v2.8.0
大兄弟,为啥 2.9.1 又无法使用 await 了呢?
from cos-nodejs-sdk-v5.
支持的,你是不是传入了callback?
from cos-nodejs-sdk-v5.
// test Promsise
cos.headBucket({
Bucket: config.Bucket,
Region: config.Region
}).then(data => {
console.log('Promise:', data);
});
// test await
async function test() {
const data = await cos.headBucket({
Bucket: config.Bucket,
Region: config.Region
});
console.log('await:', data);
}
test();
@Erchoc 这两个都可用,是遇到什么问题导致调用失败?
from cos-nodejs-sdk-v5.
Related Issues (20)
- 能不能更新一下包版本 HOT 1
- error TS2430: Interface 'RequestParams' incorrectly extends interface 'BucketParams'. HOT 1
- SDK's ts checked error HOT 1
- 人才,能不能编译发版一下2.11.18,等着你修复线上问题呢(狗头) HOT 1
- 上传文件显示missing param SecretId的错误 HOT 1
- 删除文件删不掉 HOT 3
- 我在使用分片上传2GB的zip文件到时候发生数据丢失问题 HOT 4
- 2.10.10版本出现ts错误,重复定义Range字段 HOT 1
- 请问nodejs sdk支持自定义请求头信息吗? HOT 1
- qs这个版本有安全风险
- cos.downloadFile 支持暂停和断点下载吗? HOT 1
- `COS.downloadFile` 的响应定义不准确 HOT 2
- `getObjectUrl` 对象访问 URL 接口缺少 `Domain` 等参数 HOT 2
- uploadFiles上传失败 HOT 1
- 请问有更新es module的计划吗 HOT 1
- 分片长时间下载大文件时不会释放文件句柄 HOT 1
- getBucket方法的data类型有些问题 HOT 1
- TypeError: Property 'StartTime' is required in type 'Credentials'. HOT 1
- 能否实现相同文件不上传? HOT 1
- 大哥你升级完不测一下吗 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cos-nodejs-sdk-v5.