javascript - 将一个返回 foo 的 promise 映射到另一个返回 bar 的 promise?
问题描述
我有一个函数,它生成一个 XMLHttpRequest 并返回一个带有请求响应的承诺。
但是,我想返回一个仅包含响应中一个字符串的承诺。
例如,而不是承诺解决response = {status, data}
等,我只想返回response.data.some_field
我怎样才能做到这一点?
解决方案
如果你在一个 Promise 上调用 .then,你将产生另一个 Promise,它将解析你在回调函数中返回的任何内容。因此,采用您正在创建的当前承诺,然后添加以下内容:
.then((response) => {
return response.data.some_field;
});
所以也许完整的功能看起来像这样:
function getStuff() {
return new Promise((resolve, reject) => {
//somethingWithXMLHttpRequest
}).then((response) => {
return response.data.some_field;
});
}
推荐阅读
- php - 如何在 PHP 中从 CURL 调用 SAS 存储过程?
- c# - 为什么 VS 在代码编译正常时显示缺少命名空间错误?
- c++ - Stroustrup:reserve() 的 C++ 实现
- javafx - 未经修饰的警报不会在请求时关闭
- node.js - 如何使用 ndb 调试 Protractor e2e 测试?
- javascript - 多个翻转框 - 但只翻转点击的那个
- python - 曲面上的 Aruco 标记姿态估计
- javascript - telegraf.js 机器人在组中没有响应
- xml - 从 Visual Studio 导出 WIT xml 失败
- r - 在 read_excel 中保留特定列