Javascript 如何在JS中实现'return'异步/等待?
我试图使这段代码(类方法)返回一个Javascript 如何在JS中实现'return'异步/等待?,javascript,async-await,Javascript,Async Await,我试图使这段代码(类方法)返回一个字符串 async sign() { const txt = 'ddddd'; const result = await crypto.createHash('md5').update(txt, 'binary').digest('hex'); return result; } 问题是它忽略了wait,并返回一个Promise。此函数的返回值用作HTTP请求头,而npmlog表示 apisign: Promise { 'faaa3f14
字符串
async sign() {
const txt = 'ddddd';
const result = await crypto.createHash('md5').update(txt, 'binary').digest('hex');
return result;
}
问题是它忽略了wait
,并返回一个Promise
。此函数的返回值用作HTTP请求头,而npmlog表示
apisign: Promise { 'faaa3f1409977cbcd4ac50b5f7cd81ec' }
我看到Wireshark捕获的网络流量
apisign: [object Promise]
如何使
返回尊重等待
,或者如何编写它以使其返回字符串
?您不应按原样返回异步函数的值,因为它是承诺
在序列化它之前等待它。总是
如果在另一个函数中调用sign()
,则必须等待它,这需要使调用方函数也成为异步
函数等等
最后,在顶级代码中,您必须使用常规的.then().catch()
语法来等待承诺的解决:
sign()
.then((result) => {
// do something with the result (e.g. put it into the response header)
console.log(result);
})
.catch((err) => {
// something wrong happened and the Promise was rejected
// handle the error
console.log(`There was an error: ${err.message || err}`);
});
您必须等待异步
函数的响应
const getURL=(标题、页面)=>`https://jsonmock.hackerrank.com/api/movies/search/?Title=${title}&page=${page}`
const callService=async(标题、页面)=>{
let response=wait-fetch(getURL(title,page));
return wait response.json();
}
异步函数callApi(){
let data=wait callService('spiderman',1);
console.log(data.data.length);
}
callApi()
async函数f(){let promise=new promise((resolve,reject)=>{setTimeout(()=>resolve(“done!”),1000)});let result=wait promise;//等到promise解析(*)alert(result);//“done!”}
类似这样的东西吗?哦,我只是忘了将wait
用作头构造方法。谢谢