相关疑难解决方法(0)

如何在.then()链中访问先前的promise结果?

我已经将我的代码重组为承诺,并构建了一个由多个回调组成的精彩长扁平承诺链.then().最后我想返回一些复合值,并且需要访问多个中间承诺结果.但是,序列中间的分辨率值不在最后一个回调的范围内,我该如何访问它们?

function getExample() {
    return promiseA(…).then(function(resultA) {
        // Some processing
        return promiseB(…);
    }).then(function(resultB) {
        // More processing
        return // How do I gain access to resultA here?
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript scope promise bluebird es6-promise

607
推荐指数
10
解决办法
18万
查看次数

如何在ES2015中将所有属性解构为当前范围/闭包?

我想做这样的事情:

const vegetableColors = {corn: 'yellow', peas: 'green'};

const {*} = vegetableColors;

console.log(corn);// yellow
console.log(peas);// green
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到或弄清楚如何做到这一点,但我真的以为我以前见过它!:P

注:我使用的是巴贝尔与stage设置为0;

背景:我正试图在JSX中干燥而不是参考this.state或this.props在任何地方.如果数据发生变化,也不必继续为destructure添加属性.

javascript destructuring ecmascript-6 ecmascript-7

21
推荐指数
1
解决办法
4348
查看次数

是否可以在JavaScript(node.js)中导入变量?

我有变量app.js:

var G = {};
module.exports = G;

var DATA = G.DATA = 'DATA';
var F1 = G.F1?= function(val)
{
  return val;
};
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以在对象下导出变量G,同时可以直接访问变量DATA而无需G.前缀.

到现在为止还挺好.

现在,我想运行一个测试了app.js在test.js:

var G = require('./app.js');
console.log(G.DATA);  // -> DATA
Run Code Online (Sandbox Code Playgroud)

这有效,但我也想直接写入DATA没有G.前缀的变量console.log(DATA); // -> DATA

当然,我可以做到

var DATA = G.DATA;对于每个变量(属性)导出和所需的模块G对象,但显然,手动将每个变量添加到测试文件以对应G对象是一个繁琐的过程.

有没有办法自动完成?

到目前为止,我从此感到悲观

JS function包含var在自己的范围内,因此理论上没有办法var为每个对象属性提供辅助函数.

谢谢.

PS.我想,以避免任何eval或 …

javascript node.js

2
推荐指数
1
解决办法
1636
查看次数