小编mit*_*med的帖子

在IE11中使用babel-polyfill未定义Promise

如标题所示,即使我也想使用babel-polyfill允许我在代码中使用promise,但是我在IE11中遇到了未定义的错误。

我已经尝试过一段时间了,因为我已经看到几次在不同的站点上被问到,但是没有一种解决方案真正适合我(或更准确地说,我可能无法适应它们)我的代码)

我认为这些文件涉及:

.babelrc

{
    "presets": [
        "es2015",
        "react"
    ]
}
Run Code Online (Sandbox Code Playgroud)

package.json:我在开发人员依赖项下拥有babel-polyfill,并试图将其置于依赖项下(都只是通过控制台手动交换并安装它),但似乎都没有用

我的script.js没有将其作为导入(但是,当我在package.json中看到该语法时,如果我尝试导入@ babel-polyfill或带正斜杠的其他组合,则找不到该模块)

最后,我的gulpfile.babel.js拥有以下任务:

gulp.task('build:js', ['lint'], () => {
    return browserify({
            entries: path.resolve(paths().source.js, 'script.js'),
            extensions: ['.jsx'],
            debug: true
        })
        .transform(babelify)
        .plugin('minifyify', {
            map: 'script.js.map.json',
            output: path.resolve(paths().public.js, 'script.js.map.json')
        })
        .bundle()
        .pipe(source('script.js'))
        .pipe(gulp.dest(path.resolve(paths().public.js)))
        .pipe(notify({
            onLast: true,
            message: 'Building JS done'
        }));
});
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

谢谢

browserify gulp babel-polyfill

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

在.net web api属性路由中的控制器级别使用Route而不是RoutePrefix

如果我使用Route属性装饰这个web api控制器,我可以点击该方法

[Route("api/v{version}/bank-accounts")]
public class BankAccountsController : ApiController
{
    [HttpGet]
    public HttpResponseMessage GetBankAccounts()
    {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我使用RoutePrefix而不能让它工作,除非我同时使用Route("")

[RoutePrefix("api/v{version}/bank-accounts")]
public class BankAccountsController : ApiController
{
    [HttpGet]
    [Route("")]
    public HttpResponseMessage GetBankAccounts()
    {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

这是打算,还是我弄乱了?

谢谢

c# asp.net-web-api attributerouting

13
推荐指数
2
解决办法
9817
查看次数

调用API时在何处使用并发

在ac #project项目中,我正在调用一个web api,问题是我在一个方法的循环中做它们.通常没有那么多,但即使我正在考虑利用并行性.

到目前为止我正在尝试的是

public void DeployView(int itemId, string itemCode, int environmentTypeId)
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri(ConfigurationManager.AppSettings["ApiUrl"]);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        var agents = _agentRepository.GetAgentsByitemId(itemId);

        var tasks = agents.Select(async a =>
            {
                var viewPostRequest = new
                    {
                        AgentId = a.AgentId,
                        itemCode = itemCode,
                        EnvironmentId = environmentTypeId
                    };

                var response = await client.PostAsJsonAsync("api/postView", viewPostRequest);
            });

        Task.WhenAll(tasks);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是想知道这是否是正确的路径,或者我应该尝试并行整个DeployView(即使在使用HttpClient之前)

现在我看到它发布了,我认为我不能只删除变量响应,只需执行等待而不将其设置为任何变量

谢谢

c# task-parallel-library async-await

11
推荐指数
2
解决办法
2116
查看次数

我在web api 2中使用DataContractJsonSerializer或Json.net

在提出这个问题之后,我试图在web api 2中获取所有这些序列化内容,我读了这篇 http://www.asp.net/web-api/overview/formats-and-model-binding/json -and-XML序列化

但现在我很困惑

1在我的webapiconfig中,我没有这一行

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
Run Code Online (Sandbox Code Playgroud)

所以我认为我正在使用默认的Json.net序列化程序.无论如何,我仍然可以在类中使用DataContract,因此只有用DataMember属性修饰的属性才会被序列化.这两个假设是否正确?

2如果我没有使用DataContract修饰类,则所有属性都将被序列化.这发生在Json.net和DataContractJsonSerializer上

3如果我改变(如我链接的问题),序列化程序仍然使用它的解析器,是因为它是Json.net一个或一个与另一个无关的东西?因为如果我在全球使用它

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Run Code Online (Sandbox Code Playgroud)

即使它没有提出任何问题,它似乎也没有提起(也没有使用自定义合约解决方案)

3如果我有一个派生自另一个的类,并且我使用DataContract装饰父类,在我看来,我必须使用DataMember来装饰子类的属性以进行序列化.或者我做错了什么?

谢谢

c# serialization asp.net-web-api

5
推荐指数
1
解决办法
3505
查看次数

React useRef 滚动仅在 setTimeout 内工作

我正在尝试在反应应用程序上使用scrollIntoView,因此在页面中我使用它

useEffect(() => {
  myRef.current.scrollIntoView({ behavior: 'smooth' });
}, [myRef, selectedSectionIndex, modalOpen]);
Run Code Online (Sandbox Code Playgroud)

它几乎适用于所有情况,因为我已经与ref={myRef}我想要查看的元素相关联。然而,在其中一个转换中,即使调用该代码,它也不会执行任何操作(甚至不会引发错误)。仅当我将其更改为

useEffect(() => {
  setTimeout(() => myRef.current.scrollIntoView({ behavior: 'smooth' }), 0);
}, [myRef, selectedSectionIndex, modalOpen]);
Run Code Online (Sandbox Code Playgroud)

我读过类似的问题,这就是我实际尝试此解决方案的原因。但无法真正指出这是如何解决的。我一直在阅读,当第一个代码运行时,引用的 dom 元素可能尚未呈现,但是

A。为什么会出现在第二个呢?b. 将调试器放在该行上方,我可以看到该元素存在于 DOM 中,如果我释放调试器,则更是如此,同样并且默默地执行任何操作,但如果我跨过并运行该行,它实际上会滚动。编辑:我附上屏幕截图调试器的,如果我按 f8 则什么也不做,如果我按 f10 它会滚动

我想有一种更干净的方法来完成这项工作,但找不到它

谢谢

myRef.current

reactjs react-hooks

5
推荐指数
0
解决办法
798
查看次数

在 HttpContext.Current.Items 缓存中使用 lambda 表达式查找键

我有一个请求缓存,使用 HttpContext.Current.Items 实现,如下所示:

private static readonly Lazy<CacheCurrentCall> lazy =
    new Lazy<CacheCurrentCall>(() => new CacheCurrentCall());

public static CacheCurrentCall Instance
{
    get
    {
        IDictionary items = HttpContext.Current.Items;
        if (!items.Contains("CacheCurrentCall"))
        {
            items["CacheCurrentCall"] = new CacheCurrentCall();
        }
        return items["CacheCurrentCall"] as CacheCurrentCall;
    }
}

private CacheCurrentCall()
{

}

public void Add<T>(T o, string key, int cacheDurationSeconds = 0)
{
    HttpContext.Current.Items.Add(key, o);
}

public void Clear(string key)
{
    HttpContext.Current.Items.Remove(key);
}

public bool Exists(string key)
{
    return HttpContext.Current.Items[key] != null;
}

public bool Get<T>(string key, out T …
Run Code Online (Sandbox Code Playgroud)

c# lambda httprequest

4
推荐指数
1
解决办法
3070
查看次数

Knockout包装值绑定

我正在使用mathias bynen的占位符代码,如果我像这样做一个简单的自定义绑定,我想和淘汰一起使用它:

ko.bindingHandlers.placeholder = {
    init: function (element) {
        $(element).placeholder();
    }
};
Run Code Online (Sandbox Code Playgroud)

和HTML

<input placeholder = "Line 1" data-bind="placeholder: {}, value: addressLine1">
Run Code Online (Sandbox Code Playgroud)

它有效,但我想将它们"合并"到一个自定义绑定中,以便像使用它一样

<input placeholder = "First Name" data-bind="placeholderValue: firstName">
Run Code Online (Sandbox Code Playgroud)

所以我尝试了这段代码:

ko.bindingHandlers.placeholderValue = {
    init: function (element, valueAccessor) {
        $(element).placeholder();
        ko.bindingHandlers.value.init(element, valueAccessor);
    },
    update: function (element, valueAccessor) {
        ko.bindingHandlers.value.update(element, valueAccessor);
    }
};
Run Code Online (Sandbox Code Playgroud)

但它引起了我的兴趣

Uncaught TypeError: undefined is not a function 
Run Code Online (Sandbox Code Playgroud)

我还没有真正掌握ko

knockout.js

4
推荐指数
1
解决办法
2984
查看次数

如何在powershell中检查后台作业是否超时

我将此作为脚本的一部分

$timeoutSeconds = $timeoutMinutes * 60
$job = Start-Job -ScriptBlock $block -ArgumentList @($environment, $filter)
Wait-Job $job -Timeout $timeoutSeconds 
Stop-Job $job 
Remove-Job $job
Run Code Online (Sandbox Code Playgroud)

如果超时,我想引发错误(是章鱼部署步骤的一部分)

谢谢

powershell

4
推荐指数
1
解决办法
508
查看次数

什么是edmx文件中的"实体密钥"?

在C#项目中,首先使用EF数据库,我使用SQL Server管理工作室为表添加了一个外键.

之后,回到Visual Studio我已经从数据库更新了模型,但是我看不到两个受影响的表之间的"链接"(即连接.edmx图中两个表的行).因此,在子表的下拉列表中,我看到了这个选项"实体键",当我点击它时,出现了"链接".说实话,我不知道,我无法理解它的作用,因为我现在可以检查或取消选中它而不会丢失,再说让我们说"链接".

你知道为什么会这样吗?

谢谢!!

c# edmx edmx-designer

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

可以切换使用String.contains吗?

我正在努力使这项工作,似乎不被接受.是否有任何修复或解决方法?

switch(email){
    case (email.contains('acceptall')):
        log.info email
        break
    default:
        log.info "Doesn't work!"    
}
Run Code Online (Sandbox Code Playgroud)

我在SoapUI中使用groovy作为脚本

groovy

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