Nul*_*nce 1 javascript node.js promise async-await
这是我的代码片段
var clients = require('restify-clients');
async function callApi(val){
const client = clients.createJsonClient({ url: apiUrl });
await client.get('/my/url', (err, req, res, obj) => {
if (err) {
return err;
} else {
return obj;
}
});
}
Run Code Online (Sandbox Code Playgroud)
我尝试了几种方法来调用它,但它们都没有用
第一种方式:
var results = await callApi(val);
Run Code Online (Sandbox Code Playgroud)
第二种方式:
var results = callApi(val).then(data => {
console.log(data);
})
Run Code Online (Sandbox Code Playgroud)
client.get
不返回承诺,你不能使用await
不返回承诺的功能(老实说,你可以,但它没有意义).这里正确的解决方案是宣传 client.get
并回复承诺:
function callApi(val) {
const client = clients.createJsonClient({ url: apiUrl });
return new Promise((resolve, reject) => {
client.get('/my/url', (err, req, res, obj) => {
if (err) {
reject(err);
} else {
resolve(obj);
}
});
});
}
// Usage
let results = await callApi(val);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2505 次 |
最近记录: |