假设我有一个承诺myProm
,并说我有成功和错误处理程序调用onSuccess
和onError
.
每当我的诺言需要超过10秒才能完成,我想要一个timeoutHandler
被执行的函数,但如果发生这种情况,既onSuccess
不会也不onError
应该执行.(同样,如果是onSuccess
或者onError
运行,我不希望我timeoutHandler
被执行.)
我已经为此提出了以下代码段.
new Promise((suc, err) => {
let outOfTime = false;
const timeoutId = window.setTimeout(() => {
outOfTime = true;
timeoutHandler();
}, 10000);
myProm.then(
(...args) => {
if (!outOfTime) {
window.clearTimeout(timeoutId);
suc(...args);
}
},
(...args) => {
if (!outOfTime) {
window.clearTimeout(timeoutId);
err(...args);
}
}
);
}).then(onSuccess, onError);
Run Code Online (Sandbox Code Playgroud)
但是,如果超时,我新定义的承诺将永远悬而未决.这会产生任何负面影响吗?例如,运行时无法清除Promise对象,因为它仍处于挂起状态(或沿着这些行的某些内容).
我想覆盖View::make()
Laravel中的默认方法,该方法可用于向用户返回视图响应.
(我认为)我已经发现这个方法存储在里面Illuminate\View\Factory.php
,我一直在阅读有关IoC容器的内容,同时尝试使用一些 类似的 教程使其工作,但它只是不起作用.
我已经创建了一个文件App\Lib\MyProject\Extensions\View\Factory.php
,其中包含以下代码:
<?php namespace MyProject\Extensions\View;
use Illuminate\View\Factory as OldFactory;
class Factory extends OldFactory {
public static function make() {
// My own implementation which should override the default
}
}
Run Code Online (Sandbox Code Playgroud)
在MyProject
文件夹自动加载与作曲家.但是,Factory
每当调用View
(特别是View::make()
)静态方法时,我都不知道如何使用该类的"修改"版本.一些帮助会很棒!
谢谢!
class ×1
core ×1
ecmascript-6 ×1
es6-promise ×1
extend ×1
javascript ×1
laravel ×1
php ×1
promise ×1