gpt4 book ai didi

javascript - Webpack 编译器实例 promise ?

转载 作者:搜寻专家 更新时间:2023-10-31 23:11:18 24 4
gpt4 key购买 nike

我正在使用 Webpack 2 Node API我想使用 bluebird promise run() 方法.

import Promise from 'bluebird'
import webpack from 'webpack'

const compiler = webpack(config)
const runAsync = Promise.promisify(compiler.run)

runAsync().then(stats => {
console.log('stats:', stats)
}).catch(err => {
console.log('err:', err)
})

我得到的错误是:

[TypeError: self.applyPluginsAsync is not a function]

所以我猜测 webpack 代码的编写方式与 bluebird promisification 不兼容。

如果有任何其他方式来 promisify webpack 的 run() 方法..?

所有这些回调和 if 语句都让我很烦。

最佳答案

您需要将 compiler 作为上下文传递给 promisify 方法。

const runAsync = Promise.promisify(compiler.run, { context: compiler });

或者这样调用它:

runAsync.call(compiler).then(stats => {...

来自 Bluebird Docs :

Note that if the node function is a method of some object, you can pass the object as the second argument like so:

var redisGet = Promise.promisify(redisClient.get, {context: redisClient});
redisGet('foo').then(function() {
//...
});

关于javascript - Webpack 编译器实例 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com