javascript - 返回值而不是没有等待的承诺
问题描述
由于父函数不支持异步。我需要在没有 await 和 get 的情况下拨打电话return value
。正如大多数帖子所建议的那样,应用承诺then
并返回值。但它打印为“承诺”而不是返回“价值”。
你能分享一下,如何实现返回值而不是承诺。
代码沙箱: https ://codesandbox.io/s/await-without-async-and-return-value-qbs7t?file=/src/index.js
await isEnable(data) {
try {
...
return true;
}
catch (e) {
console.error(e);
}
}
}
const getEnableStatus=(data) =>{
return isEnable(data).then((result) =>
{console.log(result); return result;}); //this prints correctly but, need this in return result.
}
console.log(getEnableStatus(data)); //it always print 'promise'. how to get value here instead of promise.
解决方案
将回调传递给getEnableStatus
函数,然后使用返回的数据调用它。
// Mock function that resolves after
// two seconds
function isEnable() {
return new Promise((res, rej) => {
setTimeout(() => res('Hallo!'), 2000);
});
}
// Accept a callback, and call it with the data
function getEnableStatus(data, callback) {
isEnable(data).then(callback);
}
// The callback logs the data
getEnableStatus('data', function (data) {
console.log(data);
});
推荐阅读
- angular - html中对象数组的角度更改属性值
- css - 背景比div大
- angular - 如何在两个单独的模块中包含一个组件?
- javascript - 当单元格值更改时运行函数(onEdit 函数)
- bash - Windows 10 的 Git Bash 在运行“bq query”而不是“bq mk”等时遇到路径错误
- css - 如何将 CSS 背景图像加载到管理部分
- azure - Azure Monitor / Log Analytics 指标警报查询和需要重定向端到端事务详细信息窗口
- javascript - 将背景颜色从另一个刀片中的表单设置为 div
- mysql - 非唯一列上的 OrderBy 将在索引扫描中工作吗?
- spring-boot - 更改默认属性文件名时,带有 log4j2 的 Spring Boot 不起作用