我有一个函数y(),它应该产生一些记录。
但是,该函数获取回调中的记录,回调传递给另一个函数d()以访问数据。d()不返回或产生任何内容。
如果接受回调的其他函数d()被视为黑匣子,这种模式是否可能出现?
什么是替代设计?
function y() {
d( function ($records) { // May be called multiple times
// How to yield for "y()"?
foreach ($records as $record)
yield $record;
如何提取回调函数的参数(a,b)并将另一个参数(c)添加到函数调用中?
function mycallback(a, b, c) {
// do stuff with a, b, c
}
function perform(callback) {
// I need to extract a and b here and add c:
// ???
//callback.apply(???);
}
perform( function() { mycallback(1, 2) } );
我可以使用异步函数作为回调函数吗?如下所示:
await sequelize.transaction(async function (t1) {
_.each(data, async function (value) {
await DoWork(value);
});
});
//Only after every "DoWork" is done?
doMoreWork();
据我所知,不能保证调用回调的函数会等到promise被解决后再继续。对吗?确定会发生什么的唯一方法是读取回调传递到的函数的源代码(例如,“transaction”的源