小编use*_*267的帖子

调用以字符串编码的javascript函数

如果我将函数放入这样的字符串:

var functionString = function (message) {
    console.log(message);
}.toString();
Run Code Online (Sandbox Code Playgroud)

有没有办法将字符串转换回函数并调用它?我试过了

eval(functionString)
Run Code Online (Sandbox Code Playgroud)

返回"Uncaught SyntaxError:Unexpected token",和

functionString.call(this, "HI!");
Run Code Online (Sandbox Code Playgroud)

返回'undefined不是函数'.

这甚至可以在JavaScript中?

在此先感谢您的回复!

编辑:这个问题的关键是函数已经使用toString()转换为字符串.所以

console.log(functionString);
Run Code Online (Sandbox Code Playgroud)

返回此字符串:"function(message){console.log(message);}"

我可以将字符串转换回函数并调用它吗?这是我试图解决的问题.谢谢!

javascript eval function tostring

7
推荐指数
1
解决办法
840
查看次数

Angular 2和MySQL概念

是否有推荐的概念如何从Angular 2应用程序访问MySQL?

我是Angular和Typescript的新手.我发现并安装了node-mysql包裹.我想选择一些数据集进行计算分析和一些图形表示(也许用d3).

我自己的概念是实现封装连接和SQL调用的单例服务.

但也许我在想这里太老了?也许应该采用不同的方法?

在实际方面,我不确定如何node-mysql在Angular2/Typescript中导入包 - 通过导入顶部的包?

如果有人能指出我的一个例子,我会很高兴学习.

mysql angular

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

如何舍入到最接近的10的幂?

我什至找不到与此相关的搜索关键字。请考虑以下代码:

float inputValue = getInputValue();
float resultValue;

if (inputValue < 0.1f) {
    resultValue = 0.01f;
}
else if (inputValue < 1.0f) {
    resultValue = 0.1f;
}
else if (inputValue < 10.0f) {
    resultValue = 1.0f;
}
else {
    resultValue = 10.0f;
}
Run Code Online (Sandbox Code Playgroud)

等等。必须有一种更优雅的方法来执行此操作。我猜该解决方案很简单,但是我尝试找到2小时的方法,然后阅读有关圆形,天花板,地板...找不到的方法。

有人知道吗?

c c++ objective-c rounding floor

3
推荐指数
1
解决办法
2217
查看次数

Promises.all 附加值

新承诺,想学习。我有这个 shopIds 数组:

let shopIdsArray = ['shop1','shop2','shop3'];
Run Code Online (Sandbox Code Playgroud)

和一个外部承诺调用

getProducts(shopId, 'products') //promise returns the products of this shop
Run Code Online (Sandbox Code Playgroud)

不幸的是,承诺不返回 shopId,只返回产品,所以我必须以某种方式保留 shopId 并在承诺完成后将其与产品存储在一起。我目前的方法是使用每个 shopId 调用 promise,并将每个 promise 调用的结果添加到 shopAndProductsArray 中,如下所示:

shopsAndProductsArray.push({
    "id":shopId,
    "products":products
}); 
Run Code Online (Sandbox Code Playgroud)

稍后,我的“包装承诺”应该返回完成的shopsAndProductsArray。

我当前的代码(节点,ES6)如下所示:

updateProducts = new Promise(

    function (resolve, reject) {
        let shopIdsArray = ['shop1','shop2','shop3'];
        const shopsAndProductsArray = [];
        let promisesArray = [];

        shopIdsArray.forEach((shopId) => {
            let promise = getProducts(shopId, 'products')
                    .then((products) => {
                        const shopInfoObject = {
                                 "id":shopId,
                                 "products":products
                        };
                        console.log("sio: ",shopInfoObject); //prints shopIds and products fine.
                        shopsAndProductsArray.push(shopInfoObject); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise es6-promise

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