给出一个变量,其定义如下:
<option value="1|Fruit">Fruit</option>
如何检查变量 $test1 = explode('|', $_POST['select1']);
$test2 = explode('|', $_POST['select2']);
是否为const f = async function() {/* ... */};
类型?
我已经找到了此解决方案:
f
但是“ f.constructor.name”与IE11不兼容。还有其他想法吗?
我知道异步功能在IE11中不起作用,...但是它们通过babel编译过程起作用。这个想法是找到一种方法来检测类似于node.js的环境中的异步功能,例如,该环境将与IE11 / babel兼容
答案 0 :(得分:1)
这似乎是个坏主意。有很多功能可以有效地异步(返回一个Promise),但是没有被标记为此类(可能是为了浏览器支持而被向下编译)。
如果您确实想测试函数是否异步,则最好测试返回值是否具有.then
属性:
const maybeTask = f()
if ('then' in maybeTask) {
maybeTask.then( .... )
}
答案 1 :(得分:0)
您尝试了<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="index.css" />
<title>
HTML Document
</title>
</head>
<body>
<div id="main-grid">
<div id="main-grid-top-left-item">
<span class="white-background">
0
</span>
</div>
<div id="main-grid-top-right-item">
<span class="white-background">
1
</span>
</div>
<div id="main-grid-bottom-left-item">
<span class="white-background">
2
</span>
</div>
<div id="main-grid-bottom-right-item">
<span class="white-background">
3
</span>
</div>
</div>
</body>
</html>
而不是f.constructor.name
?
前者检查f的构造函数,而后者将检查f()返回的值。
如果f是一个异步函数,则f().constructor.name
应该返回“ Promise”。
不太确定这是否是检查异步功能的最佳方法,但认为可以帮上忙。